The present disclosure relates generally to methods and systems for switching between software applications, such as hosted and/or network-accessible applications. In particular, methods and systems for managing state data to facilitate intelligent switching between hosted and/or network-accessible applications are described.
Switching between software applications is a procedure that software users will seek to perform many times in a given software session. For example, data from one application may be relevant to a task that needs to be performed in another application and quickly referencing each application may improve the user's workflow. However, known hosted applications, including cloud applications and software as a service (“SAAS”) applications, do not enable users to conveniently and intelligently switch between different applications.
Many conventional hosted applications include a number of related pages or locations. For example, a hosted application accessible at a web address application1.publisher.com may include a first page accessed at application1.publisher.com/page1.aspx and a second page accessed at application1.publisher.com/page2.aspx. In conventional application frameworks, if a user returns to the hosted application after navigating away from it, the application framework is unable to direct the user to the last page the user accessed within the application when the user returns to the application.
For example, if the user accessed an application at application1.publisher.com/ after navigating away from application1.publisher.com previously, many conventional hosted applications would simply return the user to a default page rather than application1.publisher.com/page2.aspx. Returning a user to a default page instead of to a page corresponding to the page where the user was when he last accessed the application reduces the user's work efficiency and productivity by requiring the user to navigate to his former page when returning to the application. Further, conventional methods for managing multiple applications may waste resources by requiring users to open additional browser instances to navigate to other pages or other applications without losing their current place and configuration in the hosted application.
Additionally or alternatively, many conventional hosted application frameworks lack adequate means for users to navigate between applications in a group of related applications. For example, many conventional hosted application systems do not provide a means by which a user can select from a group of related applications and have the selected application load with the user focus directed to the precise location and software configuration that existed when the user navigated away from the selected application.
Further, many existing solutions do not adequately allow users to manage state data when switching between applications. Conventional hosted applications are not adequately aware of a user's interactions with other associated applications. As a result, conventional hosted applications in the web context require users to open a large number of browser instances to utilize multiple applications without losing state data associated with each application. As a result, there exists a need for improved state management systems and methods to provide both application awareness and to satisfactorily return users to previously used locations when returning to applications used in the past.
Moreover, some conventional application switching means, such as simply navigating across unrelated pages with the hypertext transfer protocol, lack satisfactory state management features. As a result, developers and users often find it difficult to properly maintain state data across multiple applications, particularly when navigating between applications in groups of related applications. This is particularly troublesome for applications accessed at distinct subdomains of the same domain. Thus, there exists a need for state data management solutions integrated into application switching frameworks that allow users to, in essence, pick up where they left off upon returning to work on a previously used application.
Additionally, some conventional hosted application solutions require software developers to develop a single code base to effectively switch between applications and/or manage state data within projects. Thus, there exists a need for modular application switching and state data management solutions. In particular, there exists a need for modular application switching and state data management frameworks that may be referenced by suites of independently developed applications. Such modular frameworks would greatly simplify the process of creating related groups of applications with a substantially consistent look and feel.
Thus, there exists a need for methods and systems for switching between hosted software applications and for methods that improve upon and advance the design of known state data management approaches. Examples of new and useful methods and systems relevant to the needs existing in the field are discussed below.